/**
 * PagFormCategoria.java
 * 
 * Projeto: SGA-LEDS
 * 
 * Rodrigo Soares Maia
 * IFES - Instituto Federal do Espírito Santo - Campus Serra
 */

package controleInterno.cih;

import controleInterno.cci.CtrlInterno;
import controleInterno.cdp.CategoriaTipo;
import java.util.HashMap;
import java.util.Map;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.event.Event;
import org.zkoss.zk.ui.util.GenericForwardComposer;
import org.zkoss.zul.Textbox;
import org.zkoss.zul.Window;

public class PagFormCategoria extends GenericForwardComposer
{
    private Window winFormCategoria;
    private Textbox nome;
    
    private int MODO;
    private CategoriaTipo obj;
    
    CtrlInterno ctrl = CtrlInterno.getInstance();

    @Override
    public void doAfterCompose(Component comp) throws Exception
    {
        super.doAfterCompose(comp);
        
        ctrl.setPagFormCategoria(this);
    }

    public void onCreate$winFormCategoria()
    {
        //verificando se existe algum usuario logado, se nao existir eh redirecionado para o login
        if (Executions.getCurrent().getSession().getAttribute("usuario") == null)
        {
            Executions.sendRedirect("/");
            winFormCategoria.detach();
        }
        else
        {
            MODO = (Integer) arg.get("tipo");

            if (MODO != CtrlInterno.SALVAR)
            {
                obj = (CategoriaTipo) arg.get("obj");
                this.preencherTela();

                if (MODO == CtrlInterno.CONSULTAR)
                {
                    //this.salvarAtividade.setVisible(false);
                    //this.bloquearTela();
                }
            }
        }
    }
    
    public void onClick$confirmar(Event event)
    {
        Map atributos = new HashMap();

        if (MODO == CtrlInterno.EDITAR)
        {
            obj.setNome(nome.getText());
            
            if (ctrl.alterarCategoria(obj) != null)
            {
                winFormCategoria.onClose();
                //TODO mostrar mensagens de sucesso
            }
        }
        else
        {
            atributos.put("nome", nome.getValue());
            
            if (ctrl.salvarCategoria(atributos) != null)
            {
                winFormCategoria.onClose();
                //TODO mostrar mensagens de sucesso
            }
        }
    }
    
    public void preencherTela()
    {
        nome.setText(obj.getNome());
    }
    
    public void onClick$cancelar(Event event)
    {
        winFormCategoria.onClose();
    }
}
